Add --verbose and -v arguments to ostree for details
authorStef Walter <stefw@redhat.com>
Tue, 13 Aug 2013 12:46:38 +0000 (14:46 +0200)
committerStef Walter <stefw@redhat.com>
Tue, 13 Aug 2013 13:37:12 +0000 (15:37 +0200)
Use the GLib debug mechanism to handle verbose output.

https://bugzilla.gnome.org/show_bug.cgi?id=705905

src/libotutil/otutil.h
src/ostree/main.c
src/ostree/ot-main.c

index c7a2842ba7607fb7c547b3572f242f796121d0c7..e0e30d51a0ceeaa47b384df4ec0b1c7271cb40bb 100644 (file)
@@ -47,4 +47,3 @@
 #include <ot-checksum-utils.h>
 
 void ot_ptrarray_add_many (GPtrArray  *a, ...) G_GNUC_NULL_TERMINATED; 
-
index 580fc8e2c93fb8d43c96a9cbc09b4d59ccf2650f..cec12b3fcb1bc8aa59061c978032aaa8b1e4d2aa 100644 (file)
@@ -70,7 +70,7 @@ main (int    argc,
 
   if (error != NULL)
     {
-      g_printerr ("error: %s\n", error->message);
+      g_message ("%s", error->message);
       g_error_free (error);
     }
 
index 4691bce247dd39b57dd596fab9a66753c49b5c41..6f751c7143250f11f613078616b4e79533bb03f1 100644 (file)
@@ -55,6 +55,19 @@ ostree_usage (char **argv,
   return (is_error ? 1 : 0);
 }
 
+static void
+message_handler (const gchar *log_domain,
+                 GLogLevelFlags log_level,
+                 const gchar *message,
+                 gpointer user_data)
+{
+  /* Make this look like normal console output */
+  if (log_level & G_LOG_LEVEL_DEBUG)
+    g_printerr ("OT: %s\n", message);
+  else
+    g_printerr ("%s: %s\n", g_get_prgname (), message);
+}
+
 int
 ostree_run (int    argc,
             char **argv,
@@ -79,6 +92,8 @@ ostree_run (int    argc,
 
   g_set_prgname (argv[0]);
 
+  g_log_set_handler (NULL, G_LOG_LEVEL_MESSAGE, message_handler, NULL);
+
   if (argc < 2)
     return ostree_usage (argv, commands, TRUE);
 
@@ -122,6 +137,11 @@ ostree_run (int    argc,
               repo = argv[in] + 7;
               skip = TRUE;
             }
+          else if (g_str_equal (argv[in], "--verbose"))
+            {
+              g_log_set_handler (NULL, G_LOG_LEVEL_DEBUG, message_handler, NULL);
+              skip = TRUE;
+            }
           else if (cmd == NULL && g_str_equal (argv[in], "--version"))
             {
               g_print ("%s\n  %s\n", PACKAGE_STRING, OSTREE_FEATURES);
@@ -146,7 +166,10 @@ ostree_run (int    argc,
                 case 'h':
                   want_help = TRUE;
                   break;
-
+                case 'v':
+                  g_log_set_handler (NULL, G_LOG_LEVEL_DEBUG, message_handler, NULL);
+                  skip = TRUE;
+                  break;
                 default:
                   if (cmd == NULL)
                     {
@@ -201,11 +224,18 @@ ostree_run (int    argc,
     {
       if (g_file_test ("objects", G_FILE_TEST_IS_DIR)
           && g_file_test ("config", G_FILE_TEST_IS_REGULAR))
-        repo = ".";
+        {
+          g_debug ("Assuming repo is in current directory");
+          repo = ".";
+        }
       else if (g_file_test (host_repo_path, G_FILE_TEST_EXISTS))
-        repo = host_repo_path;
+        {
+          g_debug ("Assuming repo is at: %s", host_repo_path);
+          repo = host_repo_path;
+        }
       else
         {
+          g_debug ("Could not automatically determine --repo");
           g_set_error_literal (&error, G_IO_ERROR, G_IO_ERROR_FAILED,
                                "Command requires a --repo argument");
           ostree_usage (argv, commands, TRUE);
@@ -244,7 +274,7 @@ ostree_main (int    argc,
 
   if (error)
     {
-      g_printerr ("%s\n", error->message);
+      g_message ("%s", error->message);
       g_error_free (error);
     }